#ifndef FARMDIARYWINDOW_H
#define FARMDIARYWINDOW_H

#include <QApplication>
#include <QMainWindow>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QListWidget>
#include <QListWidgetItem>
#include <QLabel>
#include <QTextEdit>
#include <QLineEdit>
#include <QComboBox>
#include <QSpinBox>
#include <QStackedWidget>
#include <QAction>
#include <QToolBar>
#include <QStatusBar>
#include <QFileDialog>
#include <QPixmap>
#include <QStyleFactory>
#include <QDateTime>
#include <QMessageBox>
#include <QGroupBox>
#include <QFormLayout>
#include <QStatusBar>
#include <QPainter>
#include <QTimer>

#include "postitemwidget.h"

class FarmDiaryWindow : public QMainWindow
{
    Q_OBJECT

public:
    FarmDiaryWindow(QWidget *parent = nullptr);
    ~FarmDiaryWindow();

private slots:
    void showPostList();

    void showCreatePost();

    void showPostDetail();

    void submitPost();

    void selectImage();

    void handlePurchase(); //购买处理函数

private:
    void applyStyle();
    void createMainWidget();
    void createActions();
    void createToolBar();
    void createStatusBar();
    void updateToolbarAvatar(const QString &path);

private:
    // 主界面组件
    QStackedWidget *stackedWidget;
    QListWidget *postList;

    // 创建帖子组件
    QLineEdit *titleEdit;
    QTextEdit *contentEdit;
    QComboBox *plantCombo;
    QDoubleSpinBox *priceSpin;
    QLabel *imageLabel;
    QString imagePath;

    // 工具栏动作
    QAction *homeAction;
    QAction *createAction;
    QAction *profileAction;

    // 详情视图控件
    QWidget *detailWidget;
    QLabel *detailTitleLabel;
    QLabel *detailAuthorLabel;
    QTextEdit *detailContentLabel;
    QLabel *detailPlantLabel;
    QLabel *detailPriceLabel;
    QLabel *detailImageLabel;
    QLabel *detailTimeLabel;

    // 新增导航动作
    QAction *forumAction;     // 社区论坛
    QAction *m_profileAction;   // 个人中心

    // 新增社区论坛控件
    QTabWidget *forumTabs;    // 论坛选项卡
    QListWidget *qnaList;      // 问答区
    QListWidget *expList;     // 经验分享区
    QListWidget *tradeList;   // 交易互助区

    // 新增个人中心控件
    QWidget *profileWidget;
    QLineEdit *nicknameEdit;
    QPushButton *avatarBtn;
    QComboBox *privacyCombo;

    QLabel *avatarLabel;
    QLabel *nicknameLabel;

    QWidget *userInfoWidget;
    QLabel *toolbarAvatar;
    QLabel *toolbarNickname;

    //购买按钮
    QPushButton *buyButton;

};
#endif // FARMDIARYWINDOW_H
